package com.yamaikeji.system.domain.tts;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yamaikeji.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 激活码对象 tts_activation
 * 
 * @author yamaikeji
 * @date 2025-04-08
 */
public class Activation extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 激活码 */
    private String code;

    /** 已使用文本数 */
    private Long yesUseTextNum;

    /** 未使用文本数 */
    private Long notUseTextNum;

    /** 用户类型（0年卡月50万字 1年卡月100万字 2永久卡100万字） */
    private String type;

    /** 配置id */
    private Long configId;

    /** 状态（0未激活 1已激活） */
    private String status;

    /** 过期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expireTime;

    /** 删除标志（0存在 2删除） */
    private String delFlag;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setCode(String code) 
    {
        this.code = code;
    }

    public String getCode() 
    {
        return code;
    }

    public void setYesUseTextNum(Long yesUseTextNum) 
    {
        this.yesUseTextNum = yesUseTextNum;
    }

    public Long getYesUseTextNum() 
    {
        return yesUseTextNum;
    }

    public void setNotUseTextNum(Long notUseTextNum) 
    {
        this.notUseTextNum = notUseTextNum;
    }

    public Long getNotUseTextNum() 
    {
        return notUseTextNum;
    }

    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }

    public void setConfigId(Long configId) 
    {
        this.configId = configId;
    }

    public Long getConfigId() 
    {
        return configId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(Date expireTime) {
        this.expireTime = expireTime;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("yesUseTextNum", getYesUseTextNum())
            .append("notUseTextNum", getNotUseTextNum())
            .append("type", getType())
            .append("configId", getConfigId())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
